package com.lam.mall.entity;

import com.lam.common.validate.group.Add;
import javax.validation.constraints.Size;
import java.util.Date;
import com.lam.common.validate.annotation.DictCheck;
import com.lam.common.utils.DateUtil;
import com.lam.common.validate.annotation.DictValid;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lam.common.components.dict.annotation.Dict;
import com.baomidou.mybatisplus.annotation.TableField;
import javax.validation.constraints.Null;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.lam.common.base.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.FieldFill;

/**
 * 店铺管理对象 mall_shop_detail
 * 
 * @author admin
 * @date 2023-04-27
 */
@DictCheck
@TableName("mall_shop_detail")
public class ShopDetail implements BaseEntity{

    /** 主键 */
    @Null(groups = Add.class, message="id必须为空")
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    
    /** 店铺名称(数字、中文，英文(可混合，不可有特殊字符)，可修改)、不唯一 */
    @Size(max = 50, message = "店铺名称长度不能超过50个字符")
    @DictValid(message = "无效的店铺名称")
    @Dict(dictCode = "shop_name_type")
    private String shopName;

    /** 店长用户id */
    @Size(max = 36, message = "店长用户id长度不能超过36个字符")
    private String userId;

    /** 店铺类型 */
    private Integer shopType;

    /** 店铺简介(可修改) */
    @Size(max = 200, message = "店铺简介长度不能超过200个字符")
    private String intro;

    /** 店铺公告(可修改) */
    @Size(max = 50, message = "店铺公告长度不能超过50个字符")
    private String shopNotice;

    /** 店铺行业(餐饮、生鲜果蔬、鲜花等) */
    private Integer shopIndustry;

    /** 店长 */
    @Size(max = 20, message = "店长长度不能超过20个字符")
    private String shopOwner;

    /** 店铺绑定的手机(登录账号：唯一) */
    @Size(max = 20, message = "店铺绑定的手机长度不能超过20个字符")
    private String mobile;

    /** 店铺联系电话 */
    @Size(max = 20, message = "店铺联系电话长度不能超过20个字符")
    private String tel;

    /** 店铺所在纬度(可修改) */
    @Size(max = 20, message = "店铺所在纬度长度不能超过20个字符")
    private String shopLat;

    /** 店铺所在经度(可修改) */
    @Size(max = 20, message = "店铺所在经度长度不能超过20个字符")
    private String shopLng;

    /** 店铺详细地址 */
    @Size(max = 100, message = "店铺详细地址长度不能超过100个字符")
    private String shopAddress;

    /** 店铺所在省份（描述） */
    @Size(max = 10, message = "店铺所在省份长度不能超过10个字符")
    private String province;

    /** 店铺所在城市（描述） */
    @Size(max = 10, message = "店铺所在城市长度不能超过10个字符")
    private String city;

    /** 店铺所在区域（描述） */
    @Size(max = 10, message = "店铺所在区域长度不能超过10个字符")
    private String area;

    /** 店铺省市区代码，用于回显 */
    @Size(max = 20, message = "店铺省市区代码，用于回显长度不能超过20个字符")
    private String pcaCode;

    /** 店铺logo(可修改) */
    @Size(max = 200, message = "店铺logo长度不能超过200个字符")
    private String shopLogo;

    /** 店铺相册 */
    @Size(max = 1000, message = "店铺相册长度不能超过1000个字符")
    private String shopPhotos;

    /** 每天营业时间段(可修改) */
    @Size(max = 100, message = "每天营业时间段长度不能超过100个字符")
    private String openTime;

    /** 店铺状态(-1:未开通 0: 停业中 1:营业中)，可修改 */
    @DictValid(message = "无效的店铺状态")
    @Dict(dictCode = "shop_status")
    private Integer shopStatus;

    /** 0:商家承担运费; 1:买家承担运费 */
    private Integer transportType;

    /** 固定运费 */
    private BigDecimal fixedFreight;

    /** 满X包邮 */
    private BigDecimal fullFreeShipping;

    /** 创建时间 */
    @JsonFormat(pattern = DateUtil.PATTERN_DEFAULT)
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /** 更新时间 */
    @JsonFormat(pattern = DateUtil.PATTERN_DEFAULT)
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    /** 分销开关(0:开启 1:关闭) */
    @DictValid(message = "无效的分销开关")
    @Dict(dictCode = "distribution_type")
    private Integer isDistribution;

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    } 

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getShopName() {
        return shopName;
    }    
    
    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserId() {
        return userId;
    }    
    
    public void setShopType(Integer shopType) {
        this.shopType = shopType;
    }

    public Integer getShopType() {
        return shopType;
    }    
    
    public void setIntro(String intro) {
        this.intro = intro;
    }

    public String getIntro() {
        return intro;
    }    
    
    public void setShopNotice(String shopNotice) {
        this.shopNotice = shopNotice;
    }

    public String getShopNotice() {
        return shopNotice;
    }    
    
    public void setShopIndustry(Integer shopIndustry) {
        this.shopIndustry = shopIndustry;
    }

    public Integer getShopIndustry() {
        return shopIndustry;
    }    
    
    public void setShopOwner(String shopOwner) {
        this.shopOwner = shopOwner;
    }

    public String getShopOwner() {
        return shopOwner;
    }    
    
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getMobile() {
        return mobile;
    }    
    
    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getTel() {
        return tel;
    }    
    
    public void setShopLat(String shopLat) {
        this.shopLat = shopLat;
    }

    public String getShopLat() {
        return shopLat;
    }    
    
    public void setShopLng(String shopLng) {
        this.shopLng = shopLng;
    }

    public String getShopLng() {
        return shopLng;
    }    
    
    public void setShopAddress(String shopAddress) {
        this.shopAddress = shopAddress;
    }

    public String getShopAddress() {
        return shopAddress;
    }    
    
    public void setProvince(String province) {
        this.province = province;
    }

    public String getProvince() {
        return province;
    }    
    
    public void setCity(String city) {
        this.city = city;
    }

    public String getCity() {
        return city;
    }    
    
    public void setArea(String area) {
        this.area = area;
    }

    public String getArea() {
        return area;
    }    
    
    public void setPcaCode(String pcaCode) {
        this.pcaCode = pcaCode;
    }

    public String getPcaCode() {
        return pcaCode;
    }    
    
    public void setShopLogo(String shopLogo) {
        this.shopLogo = shopLogo;
    }

    public String getShopLogo() {
        return shopLogo;
    }    
    
    public void setShopPhotos(String shopPhotos) {
        this.shopPhotos = shopPhotos;
    }

    public String getShopPhotos() {
        return shopPhotos;
    }    
    
    public void setOpenTime(String openTime) {
        this.openTime = openTime;
    }

    public String getOpenTime() {
        return openTime;
    }    
    
    public void setShopStatus(Integer shopStatus) {
        this.shopStatus = shopStatus;
    }

    public Integer getShopStatus() {
        return shopStatus;
    }    
    
    public void setTransportType(Integer transportType) {
        this.transportType = transportType;
    }

    public Integer getTransportType() {
        return transportType;
    }    
    
    public void setFixedFreight(BigDecimal fixedFreight) {
        this.fixedFreight = fixedFreight;
    }

    public BigDecimal getFixedFreight() {
        return fixedFreight;
    }    
    
    public void setFullFreeShipping(BigDecimal fullFreeShipping) {
        this.fullFreeShipping = fullFreeShipping;
    }

    public BigDecimal getFullFreeShipping() {
        return fullFreeShipping;
    }    
    
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getCreateTime() {
        return createTime;
    }    
    
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }    
    
    public void setIsDistribution(Integer isDistribution) {
        this.isDistribution = isDistribution;
    }

    public Integer getIsDistribution() {
        return isDistribution;
    }    
    

}
